传输层架构在网络层之上,在两台计算机进程之间传输数据,常见的传输层协议包括TCP和UDP。

1. TCP

1.1 首部格式

1.2 TCP状态机

TCP是面向连接的,在其生命周期会有各种不同状态

状态 描述
LISTEN 等待来自远程TCP应用程序的请求
SYN_SENT 发送连接请求后等待来自远程端点的确认。TCP第一次握手后客户端所处的状态
SYN-RECEIVED 该端点已经接收到连接请求并发送确认。该端点正在等待最终确认。TCP第二次握手后服务端所处的状态
ESTABLISHED 代表连接已经建立起来了。这是连接数据传输阶段的正常状态
FIN_WAIT_1 等待来自远程TCP的终止连接请求或终止请求的确认
FIN_WAIT_2 在此端点发送终止连接请求后,等待来自远程TCP的连接终止请求
CLOSE_WAIT 该端点已经收到来自远程端点的关闭请求,此TCP正在等待本地应用程序的连接终止请求
CLOSING 等待来自远程TCP的连接终止请求确认
LAST_ACK 等待先前发送到远程TCP的连接终止请求的确认
TIME_WAIT 等待足够的时间来确保远程TCP接收到其连接终止请求的确认

1.3 三次握手

1.4 四次挥手

2. UDP

3. TCP与UDP的区别

TCP UDP
是否连接 面向无连接 面向连接
是否可靠 不可靠传输,尽力交付 可靠传输,有流量控制和拥塞控制
通信方式 支持单播、多播 只能点对点通信
传输方式 面向报文 面向字节流
首部开销 8字节 最小20字节,最大60字节
使用场景 适用IP电话、视频会议、直播、即时通讯等实时应用 适用要求可靠传输的应用,如http,ftp等

4. 引用

  1. TCP状态机
  2. TCP报文段首部格式详解